package com.quanyan.runningriding.service;


import com.quanyan.api.APIResponse;
import com.quanyan.common.Plugin.PageObj;
import com.quanyan.runningriding.entity.vo.run.MusicTypeVo;
import com.quanyan.runningriding.entity.vo.run.MusicVo;
import com.quanyan.runningriding.entity.vo.run.req.BatchSynchroniseMusic;
import com.quanyan.runningriding.entity.vo.run.resp.MusicType;
import com.quanyan.runningriding.entity.vo.run.resp.MyBelovedMusic;

import java.util.List;


/**
 * RunMusicService
 *
 * @author Tu Chun
 * @date 2016/8/23
 */
public interface RunMusicService {

    APIResponse<List<MusicType>> getMusicTypeList();

    PageObj<List<MyBelovedMusic>> getMyBelovedMusicList(String userId, Integer pageNum, Integer pageSize);

    APIResponse<?> collectionMusic(String userId, Integer musicId, Byte operationType);

    APIResponse<MusicVo> getMusicByPace(Byte type, Integer cadence);

    APIResponse<?> batchUploadMusic(List<MusicVo> musicVos);

    PageObj<List<MusicVo>> musicList(String name, String author, Byte type, Integer pageNum, Integer pageSize);

    APIResponse<?> updateMusic(MusicVo musicVo);

    APIResponse<?> deleteMusic(Integer musicId);

    APIResponse<MusicVo> getMusicById(Integer id);

    APIResponse<?> batchCollectionMusic(List<BatchSynchroniseMusic> batchSynchroniseMusics);




    APIResponse<?> editMusicType(MusicTypeVo musicTypeReq);

    APIResponse<?> deleteMusicType(Byte musicType);

    PageObj<List<MusicTypeVo>> musicTypeList(Byte type, String name, Double pace, Integer cadence, Integer pageNum, Integer pageSize);

    APIResponse<List<MusicTypeVo>> getMusicTypeListAdmin();


    APIResponse<?> musicCollectionOperate(String userId,Integer musicCollectionId, Byte operateType, Byte operateAction, Long playTime);
}
